package org.ens.delegation.bo;

import java.util.List;
import javax.persistence.*;

/**
 * @author amine
 *
 */
@Entity
@Table(name="utilisateur")
public class Utilisateur implements IBusinessObject<Integer>{

	private Integer id;
        private String nom;
        private String prenom;
	private String username;
	private String password;
	private Role role;
	private List<Historique> listHistorique;
	
	@Override
	@Id
	@Column(name="code_util")
	public Integer getId() {
		return id;
	}
	
	@Override
	public void setId(Integer id) {
		this.id = id;
	}
        
        /**
        * @return the nom
        */
        @Column(name="nom")
        public String getNom() {
            return nom;
        }

        /**
        * @param nom the nom to set
        */
        public void setNom(String nom) {
            this.nom = nom;
        }

        /**
        * @return the prenom
        */
        @Column(name="prenom")
        public String getPrenom() {
            return prenom;
        }

        /**
        * @param prenom the prenom to set
        */
        public void setPrenom(String prenom) {
            this.prenom = prenom;
        }
	
	@Column(name="username")
	public String getUsername() {
		return username;
	}
	
	public void setUsername(String username) {
		this.username = username;
	}
	
	@Column(name="password")
	public String getPassword() {
		return password;
	}
	
	public void setPassword(String password) {
		this.password = password;
	}

	@ManyToOne
	@JoinColumn(name="role")
	public Role getRole() {
		return role;
	}

	public void setRole(Role role) {
		this.role = role;
	}

	@OneToMany(mappedBy="utilisateur")
	public List<Historique> getListHistorique() {
		return listHistorique;
	}      
        
	public void setListHistorique(List<Historique> listHistorique) {
		this.listHistorique = listHistorique;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj == null || !(obj instanceof Utilisateur))
			return false;
		Utilisateur utilisateur = (Utilisateur) obj;
		if(utilisateur.getId() == null)
			return false;
	
		return utilisateur.getId().equals(this.getId());
	}	
}
